<?php

class Taxi_SolicitudsController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
    }

    /*
     * CONSULTAR DADES PETICIÓ PER ID_SOLICITUD
     * CONSULTAR DADES PETICIÓ PER MAIL TAXISTA (diferides)
     */
    public function getAction()
    {
        $id = $this->_getParam('id',NULL);
        $mail = $this->_getParam('mail',NULL);
        $token = $this->_getParam('token', NULL);
        
        $model_solicituds = new Taxi_Model_Solicituds;
        $model_authtaxi = new Taxi_Model_AuthTaxistes;
        
        if(is_null($id) && is_null($mail) && is_null($token))
        {
            $res = -2;
        }else if (is_null($id) == false && is_null($mail) == false && is_null($token) == false) {
            $res_auth = $model_authtaxi->checkToken($mail,$token);
            
            if($res_auth == 0){
                $res = $model_solicituds->consultar_solicitud_perID($id);
            }else {
                $res = -9; //Autenticació incorrecte
            }
        }
        else if (is_null($id) && is_null($mail) == false && is_null($token) == false)
        {
            $res_auth = $model_authtaxi->checkToken($mail,$token);
            
            if($res_auth == 0){
                $res = $model_solicituds->consultar_solicitud_perMAIL($mail);
            }else {
                $res = -9; //Autenticació incorrecte
            }      
        }
        
        echo Zend_Json_Encoder::encode($res);
        exit;
    }
    
    //ACCEPTAR / REBUTJAR PETICIÓ
    public function putAction()
    {
        $id = $this->_getParam('id',NULL);
        $solicitud = $this->_getParam('solicitud',NULL);
        $mail_taxi = $this->_getParam('mail_taxi',NULL);
        $token = $this->_getParam('token',NULL);
        
        $model_solicitud = new Taxi_Model_Solicituds();
        $model_estat = new Taxi_Model_Estat();
        $model_authtaxi = new Taxi_Model_AuthTaxistes;
        
        if(is_null($id) || is_null($solicitud) || is_null($mail_taxi) || is_null($token))
        {
            $res = -2;
        }else {
            
            $res_auth = $model_authtaxi->checkToken($mail_taxi,$token);
            
            if($res_auth == 0){
                
                if($solicitud == 0){ //rebutjada
                    $res = $model_solicitud->reject_solicitud($id);
                    $res = $model_estat->reject_solicitud($mail_taxi);
                
                    $positions = $model_solicitud->consultar_positions($id);
                    $posX = $positions[0];
                    $posY = $positions[1];
                
                    $taxi_proper = $model_estat->pregunta_al_mes_proper($posX, $posY, $mail_taxi);
            
                    if($taxi_proper == -1){
                              
                        $res = $model_solicitud->cancelar_solicitud($id);
                 
                    }else {
                        $diferida = $model_solicitud->consulta_dia($id_solicitud);
                        $res = $model_estat->peticio($taxi_proper, $id, $diferida);
                    }
                
                }else if ($solicitud == 1){ //acceptada
                    $res = $model_solicitud->accept_solicitud($id,$mail_taxi);
                }
            }else {
                $res = -9; //Autenticació incorrecte
            }
            
        }
        
        echo Zend_Json_Encoder::encode($res);
        exit;
    }

    //FINALITZA PETICIÓ
    public function deleteAction()
    {
        $id = $this->_getParam('id',NULL);
        $mail = $this->_getParam('mail',NULL);
        $token = $this->_getParam('token', NULL);
        
        $model_solicituds = new Taxi_Model_Solicituds;
        $model_authtaxi = new Taxi_Model_AuthTaxistes;
        
        if(is_null($id))
        {
            $res = -2;
        }else if (is_null($token)){
            $res = -3;
        }
        else
        {
            $res_auth = $model_authtaxi->checkToken($mail,$token);
            
            if($res_auth == 0){
                $res = $model_solicituds->cancelar_solicitud($id);
            }else {
                $res = -9; //Autenticació incorrecte
            }
        }
        
        echo Zend_Json_Encoder::encode($res);
        exit;
    }
}